#include <stdio.h>

namespace sg
{
	class Linux
	{
	public :
		Linux(int n)
		{
			this->n = n;
			printf("Linux()\n");
		}
		~Linux()
		{
			printf("~Linux()\n");
		}
		Linux(Linux& tmp)
		{
			printf("copy_constructor call");
			this->n = tmp.n;
		}

	private :
		int n;
	};
}

void foo(sg::Linux a)
{
}

int main()
{
	sg::Linux ubuntu(100);
	sg::Linux* p_ubuntu = new sg::Linux(100);

	delete p_ubuntu;

	// call copy constructor
	foo(ubuntu);

	return 0;
}
